# 配置文件
# 用于控制差异分析工具的各种功能开关

class Config:
    """配置类 - 包含所有可配置的选项"""

    # 页面分割功能配置
    ENABLE_PAGE_SEPARATOR = True  # 是否启用页面分割功能
    PAGE_SEPARATOR_FORMAT = "=== 来源：{filename} - 第{page}页 ==="  # 页面分割信息格式

    # OCR相关配置
    OCR_SERVER_URL = 'http://10.157.223.51:8888/cxfServerX/identifyTableFile'
    OCR_USERNAME = 'test'
    OCR_TYPE_ID = '3004'
    OCR_AUTO_ROTATION = '1'
    OCR_LAYOUT = '1'
    OCR_LANGUAGE = '3'

    # 文件路径配置
    PDF_DIR_NAME = "2025年二季度人行清单"  # PDF文件目录名
    DOWNLOAD_DIR_NAME = "download"  # 下载目录名
    RESULT_DIR_NAME = "结果"  # 结果输出目录名
    TEMP_PAGES_DIR_NAME = "temp_pages"  # 临时页面目录名

    # Excel文件配置
    EXCEL_FILENAME = "账户信息查询.xlsx"  # Excel文件名
    OCR_RESULT_FILENAME = "OCR识别结果.xlsx"  # OCR结果文件名
    DIFF_RESULT_FILENAME = "差异分析结果.xlsx"  # 差异分析结果文件名

    # 日志配置
    LOG_LEVEL = "INFO"  # 日志级别
    LOG_DIR_NAME = "logs"  # 日志目录名

    # 数据验证配置
    MIN_ACCOUNT_LENGTH = 10  # 最小账号长度
    MIN_BANK_NAME_LENGTH = 3  # 最小银行名称长度

    @classmethod
    def get_page_separator(cls, filename, page_info):
        """
        获取格式化的页面分割信息
        
        参数:
            filename: 文件名
            page_info: 页面信息
            
        返回:
            str: 格式化的分割信息
        """
        if not cls.ENABLE_PAGE_SEPARATOR:
            return ""

        # 从页面信息中提取页码
        if "page-" in page_info:
            # 提取页码数字，如从 "湖北_账户开立清单_page-0001.pdf" 提取 "0001"
            import re
            match = re.search(r'page-(\d+)', page_info)
            if match:
                page_num = match.group(1).lstrip('0') or '1'  # 去掉前导零，如果全是0则为1
            else:
                page_num = "未知"
        else:
            page_num = "1"  # 单页PDF默认为第1页

        return cls.PAGE_SEPARATOR_FORMAT.format(filename=filename, page=page_num)

    @classmethod
    def is_page_separator_enabled(cls):
        """检查是否启用页面分割功能"""
        return cls.ENABLE_PAGE_SEPARATOR
